/* -*-jde-*- */
package app.mail;

import app.alumnoe.AlumnoE;
import app.util.appException;
import java.util.LinkedList;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 * MailCore Termplates Genera una Vacante para la empresa dependiendo del
 * identificador de usuario
 *
 * @author Victor Miguel Peralta Santa Anna
 * @since Enero 2012
 * @version 0.1
 */
public class Mail {

    /**
     * Envia un correo electrónico a una empresa diciendole el motivo del
     * rechazo
     *
     * @param nombre El nombre asignado
     * @param motivo El motivo del rechazo
     * @param correo El correo asignado
     * @throws appException
     */
    public static void sendRechazoEmpresa(String nombre, String motivo, String correo) throws appException {
        MailCore mail = new MailCore();
        String asunto = "Solicitud no aprobada por el administrador del sistema.";
        String cuerpo = "\nEstimadoa: " + nombre + "\n";
        cuerpo += "Le informamos que ha sido rechazada su solicitud por el siguiente motivo:\n\n";
        cuerpo += motivo;
        cuerpo += "\n\nSin más por el momento, le deseamos un excelente día."
                + "\nAtentamente: Secretaría de Asuntos Estudiantiles.";
        mail.send(correo, asunto, cuerpo);
    }

    /**
     * Envia un correo electrónico a una empresa diciendole el motivo del
     * rechazo
     *
     * @param nombre El nombre asignado
     * @param correo El correo asignado
     * @throws appException
     */
    public static void sendRechazoEmpresaActiva(String nombre, String correo) throws appException {
        MailCore mail = new MailCore();
        String asunto = "Su empresa ha sido dada de baja por el administrador del sistema.";
        String cuerpo = "\nEstimadoa: " + nombre + "\n";
        cuerpo += "Le informamos que ha sido dada de baja del sistema de la Bolsa de Trabajo de la Facultad de Ciencias.\n\n";
        cuerpo += "Para conocer motivos u obtener más información, porfavor ponerse en contacto con la Secretaría de Asuntos Estudiantiles.\n"
                + "Le recordamos que de así quererlo, puede volver a registrarse en el sistema.";
        cuerpo += "\n\nSin más por el momento, le deseamos un excelente día."
                + "\nAtentamente: Secretaría de Asuntos Estudiantiles.";
        mail.send(correo, asunto, cuerpo);
    }

    /**
     * Envia un correo electrónico a un alumno que se limpio el registro
     * diciendole el motivo del rechazo
     *
     * @param nombre El nombre asignado
     * @param cuenta El número de cuenta asignado
     * @param correo El correo asignado
     * @throws appException
     */
    public static void sendRechazoAlumno(String nombre, String cuenta, String correo) throws appException {
        MailCore mail = new MailCore();
        String asunto = "El administrador le ha limpiado su registro en la Bolsa de Trabajo de la Facultad de Ciencias.";
        String cuerpo = "\nEstimado(a): " + nombre + " con número de cuenta: " + cuenta + "\n";
        cuerpo += "Le informamos que el administrador de la Bolsa de Trabajo de la Facultad de Ciencias "
                + "ha removido su registro de la base de datos. Puede pasar a la Secretaría de Asuntos Estudiantiles para conocer los motivos"
                + ".\n\nLe recordamos que puede volver a registrarse en el sistema.\n\n";
        cuerpo += "\n\nSin más por el momento, le deseamos un excelente día."
                + "\nAtentamente: Secretaría de Asuntos Estudiantiles.";
        mail.send(correo, asunto, cuerpo);
    }

    /**
     * Envia un correo electrónico a una empresa diciendole el motivo del
     * rechazo
     *
     * @param nombre El nombre asignado
     * @param motivo El motivo del rechazo
     * @param correo El correo asignado
     * @throws appException
     */
    public static void bajaVacanteEmpresa(LinkedList<AlumnoE> lista) throws appException {

        for (AlumnoE alumno : lista) {
            MailCore mail = new MailCore();
            String asunto = "Se dió de baja una vacante a la que usted estaba postulado.";
            String cuerpo = "\nEstimado(a): " + alumno.getsNombre() + "\n";
            cuerpo += "Le informamos que ha sido dada de baja una vacante a la que usted se postuló.\n\n";
            cuerpo += "\nPuede verificar esto cuando ingrese al sistema.";
            cuerpo += "\n\nSin más por el momento, le deseamos un excelente día."
                    + "\nAtentamente: Secretaría de Asuntos Estudiantiles.";
            mail.send(alumno.getCorreoPrimarioAlumno(), asunto, cuerpo);
        }
    }

    /**
     * Envía un correo electrónico a un usuario cuando se cambia la contraseña
     *
     * @param nombre
     * @param contrasenia
     * @param correo
     */
    public static void sendNuevaContrasenia(String nombre, String contrasenia, String correo) {
        MailCore mail = new MailCore();
        String asunto = "Contraseña nueva para la bolsa de trabajo de la facultad de ciencias";
        String cuerpo = "\nEstimado(a): " + nombre + "\n";
        cuerpo += "Le informamos que ha sido cambiada su contraseña en el sistema de la bolsa de trabajo por la que a continuación se le escribe:\n\n";
        cuerpo += contrasenia;
        cuerpo += "\n\nLe recomendamos cambie la contraseña por una que sea más fácil de recordar."
                + "\nSin más por el momento, le deseamos un excelente día."
                + "\nAtentamente: Secretaría de Asuntos Estudiantiles.";
        mail.send(correo, asunto, cuerpo);
    }

    /**
     * Envía un correo electrónico a un usuario cuando se cambia la contraseña
     *
     * @param nombre
     * @param contrasenia
     * @param correo
     */
    public static void sendCambiaContrasenia(String nombre, String contrasenia, String correo) {
        MailCore mail = new MailCore();
        String asunto = "Contraseña nueva para la bolsa de trabajo de la facultad de ciencias";
        String cuerpo = "\nEstimado(a): " + nombre + "\n";
        cuerpo += "Le informamos que ha sido cambiada su contraseña en el sistema de la bolsa de trabajo por la que a continuación se le escribe:\n\n";
        cuerpo += contrasenia;
        cuerpo +=
                "\n\nSin más por el momento, le deseamos un excelente día."
                + "\nAtentamente: Secretaría de Asuntos Estudiantiles.";
        mail.send(correo, asunto, cuerpo);
    }

    /**
     * Envia un correo electrónico a una empresa diciendole el motivo del
     * rechazo
     *
     * @param nombre El nombre asignado
     * @param motivo El motivo del rechazo
     * @param correo El correo asignado
     * @throws appException
     */
    public static void sendRechazoVacante(String nombre, String nombreVacante, String motivo, String correo) throws appException {
        MailCore mail = new MailCore();
        String asunto = "Solicitud no aprobada por el administrador del sistema.";
        String cuerpo = "\nEstimado(a): " + nombre + "\n";
        cuerpo += "Le informamos que ha sido rechazada su vacante de nombre \"" + nombreVacante
                + "\" por el siguiente motivo:\n\n";
        cuerpo += motivo;
        cuerpo += "\n\nSin más por el momento, que tenga un excelente día."
                + "\nAtentamente: Secretaría de Asuntos Estudiantiles.";
        mail.send(correo, asunto, cuerpo);
    }

    /**
     * Envia un correo electrónico a un alumno cuando es dado de alta.
     *
     * @param usuario El nombre de usuario asignado
     * @param contrasenia La contraseña asignada
     * @param nombre El nombre asignado
     * @param correo El correo asignado
     * @throws appException
     */
    public static void sendAltaAlumnoE(String nombre, String correo) throws appException {
        MailCore mail = new MailCore();
        String asunto = "Se ha dado de alta en la Bolsa de Trabajo de la Facultad de Ciencias.";
        String cuerpo = "\nEstimado(a): " + nombre + "\n";
        cuerpo += "Le informamos que ha sido dado de alta en la Bolsa de Trabajo de la Facultad de Ciencias.\n";
        cuerpo += "Le recordamos que su contraseña se encuentra encriptada y segura en la base de datos.\n"
                + "\nEsperamos disfrute de los servicios en línea que le ofrece la SAE."
                + "\n\nAtentamente: Secretaría de Asuntos Estudiantiles.";
        mail.send(correo, asunto, cuerpo);
    }

    /**
     * Envia un correo electrónico a una empresa cuando es dada de alta.
     *
     * @param usuario El nombre de usuario asignado
     * @param contrasenia La contraseña asignada
     * @param nombreEmpresa El nombre asignado
     * @param correo El correo asignado
     * @throws appException
     */
    public static void sendAltaEmpresa(String nombreEmpresa, String correo) throws appException {
        MailCore mail = new MailCore();
        String asunto = "El administrador ha dado de alta a su empresa en la Bolsa de Trabajo de la Facultad de Ciencias.";
        String cuerpo = "\nEstimada: " + nombreEmpresa + "\n";
        cuerpo += "Le informamos que ha sido dado de alta en la Bolsa de Trabajo de la Facultad de Ciencias.\n\n";
        cuerpo += "Por último le recordamos que su contraseña se encuentra encriptada y segura en la base de datos.\n"
                + "\nEsperamos disfrute de los servicios en línea que le ofrece la SAE."
                + "\n\nAtentamente: Secretaría de Asuntos Estudiantiles.";
        mail.send(correo, asunto, cuerpo);
    }

    /**
     * Envia un correo electrónico a una empresa cuando es dada de alta.
     *
     * @param usuario El nombre de usuario asignado
     * @param contrasenia La contraseña asignada
     * @param nombreEmpresa El nombre asignado
     * @param correo El correo asignado
     * @throws appException
     */
    public static void sendAceptaEmpresa(String nombreEmpresa, String correo) throws appException {
        MailCore mail = new MailCore();
        String asunto = "Se ha aceptado su empresa la Bolsa de Trabajo de la Facultad de Ciencias.";
        String cuerpo = "\nEstimada: " + nombreEmpresa + "\n";
        cuerpo += "Sea bienvenida a los servicios que le ofrece la Secretaría de Asuntos Estudiantiles junto con la Facultad d Ciencias.\n\n";
        cuerpo += "Desde ahora puede ingresar al sistema con su usuario y nombre registrados de modo que pueda dar de alta vacantes.\n\n"
                + "\nEsperamos disfrute de los servicios en línea que le ofrece la SAE."
                + "\n\nAtentamente: Secretaría de Asuntos Estudiantiles.";
        mail.send(correo, asunto, cuerpo);
    }

    /**
     * Envia un correo electrónico a una empresa cuando es dada de alta su
     * vacante.
     *
     * @param nombreVacante El nombre de usuario asignado
     * @param contrasenia La contraseña asignada
     * @param nombreResponsable El nombre asignado
     * @param correo El correo asignado
     * @throws appException
     */
    public static void sendAltaVacante(String nombreVacante, String nombreResponsable, String correo) throws appException {
        MailCore mail = new MailCore();
        String asunto = "Ha registrado una nueva vacante en la Bolsa de Trabajo de la Facultad de Ciencias.";
        String cuerpo = "Estimado(a): " + nombreResponsable + "\n";
        cuerpo += "Le informamos que la vacante \"";
        cuerpo += nombreVacante;
        cuerpo += "\" ha sido agregada y desde ahora esta en espera de ser aceptada por los administradores del sistema."
                + "\nRecibirá un correo electrónico una vez se revise la Vacante nueva.\n\nAtentamente: Secretaría de Asuntos Estudiantiles.";
        mail.send(correo, asunto, cuerpo);
    }

    /**
     * Envia un correo electrónico a una empresa cuando es dada de alta su
     * vacante.
     *
     * @param nombreVacante El nombre de usuario asignado
     * @param contrasenia La contraseña asignada
     * @param nombreResponsable El nombre asignado
     * @param correo El correo asignado
     * @throws appException
     */
    public static void sendAceptaVacante(String nombreVacante, String nombreResponsable, String correo) throws appException {
        MailCore mail = new MailCore();
        String asunto = "se ha aceptado su vacante en la Bolsa de Trabajo de la Facultad de Ciencias.";
        String cuerpo = "Estimado(a): " + nombreResponsable + "\n";
        cuerpo += "Le informamos que la vacante \"";
        cuerpo += nombreVacante;
        cuerpo += "\" ha sido aceptada y desde ahora visible a la comunidad de la Bolsa de Trabajo de la Facultad de Ciencias."
                + "\n\nAtentamente: Secretaría de Asuntos Estudiantiles.";
        mail.send(correo, asunto, cuerpo);
    }

    public static void main(String args[]) {
        try {
            Mail.sendAltaAlumnoE("Victor Miguel Peralta Santa Anna", "victor.mpsa@gmail.com");
            Mail.sendAltaEmpresa("Empresa de nombre THIS", "victor.mpsa@gmail.com");
            Mail.sendAltaVacante("Nombre de la vacante", "Nombre de la empresa de THIS", "victor.mpsa@gmail.com");
        } catch (appException ex) {
            Logger.getLogger(Mail.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}
